package com.base.common.persistent.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class TItemExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TItemExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andItemIdIsNull() {
            addCriterion("ITEM_ID is null");
            return (Criteria) this;
        }

        public Criteria andItemIdIsNotNull() {
            addCriterion("ITEM_ID is not null");
            return (Criteria) this;
        }

        public Criteria andItemIdEqualTo(Long value) {
            addCriterion("ITEM_ID =", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdNotEqualTo(Long value) {
            addCriterion("ITEM_ID <>", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdGreaterThan(Long value) {
            addCriterion("ITEM_ID >", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdGreaterThanOrEqualTo(Long value) {
            addCriterion("ITEM_ID >=", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdLessThan(Long value) {
            addCriterion("ITEM_ID <", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdLessThanOrEqualTo(Long value) {
            addCriterion("ITEM_ID <=", value, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdIn(List<Long> values) {
            addCriterion("ITEM_ID in", values, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdNotIn(List<Long> values) {
            addCriterion("ITEM_ID not in", values, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdBetween(Long value1, Long value2) {
            addCriterion("ITEM_ID between", value1, value2, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemIdNotBetween(Long value1, Long value2) {
            addCriterion("ITEM_ID not between", value1, value2, "itemId");
            return (Criteria) this;
        }

        public Criteria andItemUuidIsNull() {
            addCriterion("ITEM_UUID is null");
            return (Criteria) this;
        }

        public Criteria andItemUuidIsNotNull() {
            addCriterion("ITEM_UUID is not null");
            return (Criteria) this;
        }

        public Criteria andItemUuidEqualTo(String value) {
            addCriterion("ITEM_UUID =", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidNotEqualTo(String value) {
            addCriterion("ITEM_UUID <>", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidGreaterThan(String value) {
            addCriterion("ITEM_UUID >", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidGreaterThanOrEqualTo(String value) {
            addCriterion("ITEM_UUID >=", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidLessThan(String value) {
            addCriterion("ITEM_UUID <", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidLessThanOrEqualTo(String value) {
            addCriterion("ITEM_UUID <=", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidLike(String value) {
            addCriterion("ITEM_UUID like", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidNotLike(String value) {
            addCriterion("ITEM_UUID not like", value, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidIn(List<String> values) {
            addCriterion("ITEM_UUID in", values, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidNotIn(List<String> values) {
            addCriterion("ITEM_UUID not in", values, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidBetween(String value1, String value2) {
            addCriterion("ITEM_UUID between", value1, value2, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemUuidNotBetween(String value1, String value2) {
            addCriterion("ITEM_UUID not between", value1, value2, "itemUuid");
            return (Criteria) this;
        }

        public Criteria andItemNameIsNull() {
            addCriterion("ITEM_NAME is null");
            return (Criteria) this;
        }

        public Criteria andItemNameIsNotNull() {
            addCriterion("ITEM_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andItemNameEqualTo(String value) {
            addCriterion("ITEM_NAME =", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameNotEqualTo(String value) {
            addCriterion("ITEM_NAME <>", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameGreaterThan(String value) {
            addCriterion("ITEM_NAME >", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameGreaterThanOrEqualTo(String value) {
            addCriterion("ITEM_NAME >=", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameLessThan(String value) {
            addCriterion("ITEM_NAME <", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameLessThanOrEqualTo(String value) {
            addCriterion("ITEM_NAME <=", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameLike(String value) {
            addCriterion("ITEM_NAME like", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameNotLike(String value) {
            addCriterion("ITEM_NAME not like", value, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameIn(List<String> values) {
            addCriterion("ITEM_NAME in", values, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameNotIn(List<String> values) {
            addCriterion("ITEM_NAME not in", values, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameBetween(String value1, String value2) {
            addCriterion("ITEM_NAME between", value1, value2, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemNameNotBetween(String value1, String value2) {
            addCriterion("ITEM_NAME not between", value1, value2, "itemName");
            return (Criteria) this;
        }

        public Criteria andItemPriceIsNull() {
            addCriterion("ITEM_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andItemPriceIsNotNull() {
            addCriterion("ITEM_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andItemPriceEqualTo(BigDecimal value) {
            addCriterion("ITEM_PRICE =", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceNotEqualTo(BigDecimal value) {
            addCriterion("ITEM_PRICE <>", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceGreaterThan(BigDecimal value) {
            addCriterion("ITEM_PRICE >", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ITEM_PRICE >=", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceLessThan(BigDecimal value) {
            addCriterion("ITEM_PRICE <", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ITEM_PRICE <=", value, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceIn(List<BigDecimal> values) {
            addCriterion("ITEM_PRICE in", values, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceNotIn(List<BigDecimal> values) {
            addCriterion("ITEM_PRICE not in", values, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ITEM_PRICE between", value1, value2, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ITEM_PRICE not between", value1, value2, "itemPrice");
            return (Criteria) this;
        }

        public Criteria andItemStatusIsNull() {
            addCriterion("ITEM_STATUS is null");
            return (Criteria) this;
        }

        public Criteria andItemStatusIsNotNull() {
            addCriterion("ITEM_STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andItemStatusEqualTo(Integer value) {
            addCriterion("ITEM_STATUS =", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusNotEqualTo(Integer value) {
            addCriterion("ITEM_STATUS <>", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusGreaterThan(Integer value) {
            addCriterion("ITEM_STATUS >", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("ITEM_STATUS >=", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusLessThan(Integer value) {
            addCriterion("ITEM_STATUS <", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusLessThanOrEqualTo(Integer value) {
            addCriterion("ITEM_STATUS <=", value, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusIn(List<Integer> values) {
            addCriterion("ITEM_STATUS in", values, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusNotIn(List<Integer> values) {
            addCriterion("ITEM_STATUS not in", values, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_STATUS between", value1, value2, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_STATUS not between", value1, value2, "itemStatus");
            return (Criteria) this;
        }

        public Criteria andItemSeqIsNull() {
            addCriterion("ITEM_SEQ is null");
            return (Criteria) this;
        }

        public Criteria andItemSeqIsNotNull() {
            addCriterion("ITEM_SEQ is not null");
            return (Criteria) this;
        }

        public Criteria andItemSeqEqualTo(Integer value) {
            addCriterion("ITEM_SEQ =", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqNotEqualTo(Integer value) {
            addCriterion("ITEM_SEQ <>", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqGreaterThan(Integer value) {
            addCriterion("ITEM_SEQ >", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqGreaterThanOrEqualTo(Integer value) {
            addCriterion("ITEM_SEQ >=", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqLessThan(Integer value) {
            addCriterion("ITEM_SEQ <", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqLessThanOrEqualTo(Integer value) {
            addCriterion("ITEM_SEQ <=", value, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqIn(List<Integer> values) {
            addCriterion("ITEM_SEQ in", values, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqNotIn(List<Integer> values) {
            addCriterion("ITEM_SEQ not in", values, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_SEQ between", value1, value2, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andItemSeqNotBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_SEQ not between", value1, value2, "itemSeq");
            return (Criteria) this;
        }

        public Criteria andShopIdIsNull() {
            addCriterion("SHOP_ID is null");
            return (Criteria) this;
        }

        public Criteria andShopIdIsNotNull() {
            addCriterion("SHOP_ID is not null");
            return (Criteria) this;
        }

        public Criteria andShopIdEqualTo(Long value) {
            addCriterion("SHOP_ID =", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdNotEqualTo(Long value) {
            addCriterion("SHOP_ID <>", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdGreaterThan(Long value) {
            addCriterion("SHOP_ID >", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdGreaterThanOrEqualTo(Long value) {
            addCriterion("SHOP_ID >=", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdLessThan(Long value) {
            addCriterion("SHOP_ID <", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdLessThanOrEqualTo(Long value) {
            addCriterion("SHOP_ID <=", value, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdIn(List<Long> values) {
            addCriterion("SHOP_ID in", values, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdNotIn(List<Long> values) {
            addCriterion("SHOP_ID not in", values, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdBetween(Long value1, Long value2) {
            addCriterion("SHOP_ID between", value1, value2, "shopId");
            return (Criteria) this;
        }

        public Criteria andShopIdNotBetween(Long value1, Long value2) {
            addCriterion("SHOP_ID not between", value1, value2, "shopId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdIsNull() {
            addCriterion("ITEM_CATEGORY_ID is null");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdIsNotNull() {
            addCriterion("ITEM_CATEGORY_ID is not null");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdEqualTo(Long value) {
            addCriterion("ITEM_CATEGORY_ID =", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdNotEqualTo(Long value) {
            addCriterion("ITEM_CATEGORY_ID <>", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdGreaterThan(Long value) {
            addCriterion("ITEM_CATEGORY_ID >", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdGreaterThanOrEqualTo(Long value) {
            addCriterion("ITEM_CATEGORY_ID >=", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdLessThan(Long value) {
            addCriterion("ITEM_CATEGORY_ID <", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdLessThanOrEqualTo(Long value) {
            addCriterion("ITEM_CATEGORY_ID <=", value, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdIn(List<Long> values) {
            addCriterion("ITEM_CATEGORY_ID in", values, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdNotIn(List<Long> values) {
            addCriterion("ITEM_CATEGORY_ID not in", values, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdBetween(Long value1, Long value2) {
            addCriterion("ITEM_CATEGORY_ID between", value1, value2, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andItemCategoryIdNotBetween(Long value1, Long value2) {
            addCriterion("ITEM_CATEGORY_ID not between", value1, value2, "itemCategoryId");
            return (Criteria) this;
        }

        public Criteria andImgUrlIsNull() {
            addCriterion("img_url is null");
            return (Criteria) this;
        }

        public Criteria andImgUrlIsNotNull() {
            addCriterion("img_url is not null");
            return (Criteria) this;
        }

        public Criteria andImgUrlEqualTo(String value) {
            addCriterion("img_url =", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlNotEqualTo(String value) {
            addCriterion("img_url <>", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlGreaterThan(String value) {
            addCriterion("img_url >", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlGreaterThanOrEqualTo(String value) {
            addCriterion("img_url >=", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlLessThan(String value) {
            addCriterion("img_url <", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlLessThanOrEqualTo(String value) {
            addCriterion("img_url <=", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlLike(String value) {
            addCriterion("img_url like", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlNotLike(String value) {
            addCriterion("img_url not like", value, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlIn(List<String> values) {
            addCriterion("img_url in", values, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlNotIn(List<String> values) {
            addCriterion("img_url not in", values, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlBetween(String value1, String value2) {
            addCriterion("img_url between", value1, value2, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andImgUrlNotBetween(String value1, String value2) {
            addCriterion("img_url not between", value1, value2, "imgUrl");
            return (Criteria) this;
        }

        public Criteria andItemStocksIsNull() {
            addCriterion("ITEM_STOCKS is null");
            return (Criteria) this;
        }

        public Criteria andItemStocksIsNotNull() {
            addCriterion("ITEM_STOCKS is not null");
            return (Criteria) this;
        }

        public Criteria andItemStocksEqualTo(Integer value) {
            addCriterion("ITEM_STOCKS =", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksNotEqualTo(Integer value) {
            addCriterion("ITEM_STOCKS <>", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksGreaterThan(Integer value) {
            addCriterion("ITEM_STOCKS >", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksGreaterThanOrEqualTo(Integer value) {
            addCriterion("ITEM_STOCKS >=", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksLessThan(Integer value) {
            addCriterion("ITEM_STOCKS <", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksLessThanOrEqualTo(Integer value) {
            addCriterion("ITEM_STOCKS <=", value, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksIn(List<Integer> values) {
            addCriterion("ITEM_STOCKS in", values, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksNotIn(List<Integer> values) {
            addCriterion("ITEM_STOCKS not in", values, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_STOCKS between", value1, value2, "itemStocks");
            return (Criteria) this;
        }

        public Criteria andItemStocksNotBetween(Integer value1, Integer value2) {
            addCriterion("ITEM_STOCKS not between", value1, value2, "itemStocks");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}